const express = require('express')
const router = express.Router()


// 发布新文章
const articleHandler =require('../router_handler/article')
// 导入验证数据的中间件
const expressJoi = require('@escook/express-joi')
const {add_article_schema,delete_article_schema,get_article_schema,edit_article_schema}=require('../schema/article')

/**
 * 5.2.3 使用 multer 解析表单数据
 * > 注意：使用 `express.urlencoded()` 中间件无法解析 `multipart/form-data` 格式的请求体数据。
 * > 当前项目，推荐使用 multer 来解析 `multipart/form-data` 格式的表单数据。https://www.npmjs.com/package/multer
 */
// 导入解析 formdata 格式表单数据的包
const multer = require('multer')
// 导入处理路径的核心模块
const path = require('path')

// 创建 multer 的实例对象，通过 dest 属性指定文件的存放路径
const upload = multer({ dest: path.join(__dirname, '../uploads') })

router.post('/add',upload.single('cover_img'),expressJoi(add_article_schema),articleHandler.addArticle)
router.get('/list',articleHandler.getArticlesList)
router.get('/delete/:id',expressJoi(delete_article_schema),articleHandler.deleteArticleById)
router.get('/:id',expressJoi(get_article_schema),articleHandler.getArticleById)
router.post('/edit',upload.single('cover_img'),expressJoi(edit_article_schema),articleHandler.editArticle)
module.exports=router